package qianting.news.article.service;

import com.baomidou.mybatisplus.extension.service.IService;
import qianting.news.apis.models.article.dtos.*;
import qianting.news.apis.models.article.pojos.ApArticle;
import qianting.news.apis.models.mess.ArticleVisitStreamMess;
import qianting.news.common.entity.State;

import java.util.Date;

public interface ApArticleService extends IService<ApArticle> {

    /**
     * 根据参数加载文章列表
     * @param loadtype 1为加载更多  2为加载最新
     * @param dto
     * @return
     */
    State load(Short loadtype, ArticleHomeDto dto);

    /**
     * 加载文章列表,根据是否首页判断(首页数据直接从缓存加载)
     * @param dto
     * @param type  1 加载更多   2 加载最新
     * @param firstPage  true  是首页  flase 非首页
     * @return
     */
    public State load2(Short type,ArticleHomeDto dto,boolean firstPage);

    /**
     * 保存app端相关文章
     * @param dto
     * @return
     */
    State saveArticle(ArticleDto dto) ;

    //修改静态化文章的minio地址
    boolean updateStaticUrlById(Long id,String url);

    /**
     * 加载文章详情 数据回显
     * @param dto
     * @return
     */
    public State loadArticleBehavior(ArticleInfoDto dto);

    /**
     * 更新文章的分值  同时更新缓存中的热点文章数据
     * @param mess
     */
    public void updateScore(ArticleVisitStreamMess mess);

    /**
     * 图文统计
     * @param wmUserId
     * @param beginDate
     * @param endDate
     * @return
     */
    State queryLikesAndConllections(Long wmUserId, Date beginDate, Date endDate);

    /**
     * 分页查询 图文统计
     * @param dto
     * @return
     */
    State newPage(StatisticsDto dto);

    /**
     * 查询文章评论统计
     * @param dto
     * @return
     */
    public State findNewsComments(ArticleCommentDto dto);

}
